أوفيسنا: حماية الخلية من تغيير أو مسح محتوياتها بدالة - بدون حماية الورقة وبدون - أوفيسنا

اذهب للمحتوى

قواعد المشاركة - يرجي القراءة قبل اضافة اي موضوع

قواعد المشاركة فى المنتدي ( اضغط هنا للقواعد الكاملة - يرجي التفضل بالاطلاع)

و بصفة خاصة نؤكدعلى ما يلي:
1-يجب استخدام خاصيةالبحث قبل طرح السؤال توفيرا للوقت و الجهد.
2-ضرورة كتابة عنوان واضح للموضوع يدل على محتواه ويعطي وصفاً مختصرا للسؤال.
3-ممنوع منعا باتاً كتابة عناوين سينمائية مثل عاجل ، نداء الي فلان ، الي الخبراء ، طلب مساعدة ، أريد حلا.....
4-يمكن استعجال الرد باستخدام تعبير -للرفع- و غير مسموح بالالحاح او اللوم فجميع الاعضاء يشاركون تطوعا طبقا لسعة وقتهم.
ومخالفة ذلك تعرض الموضوع للإغلاق


  • (2 صفحات)
  • +
  • 1
  • 2

حماية الخلية من تغيير أو مسح محتوياتها بدالة - بدون حماية الورقة وبدون

#1 متواجد   halwim Icon

  • Icon
  • مجموعة الأعضاء المتميزين
  • مشاركات 465
  • التحق : 22-October 05

Warn Status

Warning level: 0%

تم الارسال 13 September 2009 - 08:56 PM

السلام عليكم ورحمة الله ....

عندنا خلية يوجد فيها معادلة وأريد حماية هذه الخلية من الخطأ غير المتعمد - لكن أريد الحماية بطريقة أخرى غير طريقة حماية عناصرالورقة المعروفة

مثلا من خلال وضع هذه الصيغة (ISTEXT(A1);ISNUMBER(A1)) في التحقق من الصحة خيار (مخصص) - استطعت أن أحمي الخلية A1 من أي تعديل أو تغير أوإضافة

ولكن للأسف الشديد هذه الصيغة لاتحمي الخلية من حذف محتوياتها بزر DEL أو backspace فبمجرد أن تضغط زر دليت تذهب الصيغة الموجودة في A1 أدراج الرياح .

هل هناك صيغة أو دالة أو طريقة معينة تحمي الخلية من الحذف ؟ طبعا أولوية الجواب لغير الأكواد أريد الكود يكون آخر حل وشكرأ

دمتم
0

#2 متواجد   يحيى حسين Icon

  • Icon
  • اضف كصديق
  • PM this member
  • مجموعة الخبراء المعتمدين
  • مشاركات 954
  • التحق : 19-September 06
  • Gender:Male

تم الارسال 14 September 2009 - 09:02 AM

أخي لا اتوقع انه يمكنك عمل ذلك بالمعادلات
و افضل طريقة هي الطريقة التقليدية في الحماية للخلايا التي تحتوي معادلات




كان رسول الله صلى الله عليه وعلى آله وسلم يقول:
اللهم إني أعوذ بك من زوال نعمتك وتحول عافيتك وفجاءة نقمتك وجميع سخطك
أخرجه مسلم.
اللهم فرج همنا و هم إخواننا المسلمين في كل مكان

إخوتي أطلب منكم الدعاء لي بالتوفيق و النجاح فلقد بدأت بدراسة شهادة
CMA - Certified Management Accountant
و أنا الآن بأشد الحاجة إلى دعائكم إخوتي


Posted Image
0
  • +
  • -

#3 متواجد   halwim Icon

  • Icon
  • مجموعة الأعضاء المتميزين
  • مشاركات 465
  • التحق : 22-October 05

Warn Status

Warning level: 0%

تم الارسال 14 September 2009 - 08:41 PM

شكرا لمرورك وردك اخي استاذ يحي - اذا كان المطلوب غير ممكن بالمعادلات - أرجو أن أحصل على كود يقوم بالمهمة بحيث يبطل مفعول أزرار الحذف لخلية معينة أو نطاق ... في انتظار الرد
0

#4 متواجد   halwim Icon

  • Icon
  • مجموعة الأعضاء المتميزين
  • مشاركات 465
  • التحق : 22-October 05

Warn Status

Warning level: 0%

تم الارسال 15 September 2009 - 01:44 AM

أرجو ان يكون سبب التأخر خير ...
كانت لدي فكرة لانشاء كود أو ماكرو يقوم بعملية الإسترجاع خطوة للوراء وذلك مباشرة بعد كل ضغطة على زر del أو backspace بحيث كلما انمسحت المعادلة من الخلية A1 تعود بفضل التراجع عن هذا الاجراء ... ولكن للأسف خبرتي في صياغة الأكواد ضعيفة فلا اعرف كيف اجعل اكسل يستجيب لتنفيذ الماكرو تلقائيا عند نقطة الحدث (بعد اي عملية حذف) . ارجو من المشرفين والخبراء التفضل بمساعدتي عاجلا وشكرا .
0

#5 متواجد   halwim Icon

  • Icon
  • مجموعة الأعضاء المتميزين
  • مشاركات 465
  • التحق : 22-October 05

Warn Status

Warning level: 0%

تم الارسال 16 September 2009 - 08:21 PM

السلام عليكم ورحمة الله وبركاته ....

يوجد في المرفق توضيح أكثر للمطلوب أرجو الإطلاع عليه وتعديل مايلزم على الأكواد الموجودة فيه.
وشكرا

ارفق ملف(ملفات)


0

#6 متواجد   خبور خير Icon

  • مشرف قسم الإكسيل
  • Icon
  • اضف كصديق
  • PM this member
  • مجموعة المشرفين
  • مشاركات 1,254
  • التحق : 05-December 05

تم الارسال 16 September 2009 - 11:18 PM

السلام عليكم

الكود التالي مثال لعدم حذف او تغيير صيغة في الخلايا
C1:C10

Dim Kh_Formula
Private Sub Worksheet_Change(ByVal Target As Range)
   
If Not Intersect(Target, Range("C1:C10")) Is Nothing Then
       
On Error Resume Next
       
Application.EnableEvents = False
       
Target.Formula = Kh_Formula
       
Application.EnableEvents = True
       
On Error GoTo 0
   
End If
End Sub
Private Sub Worksheet_Selectionchange(ByVal Target As Range)
   
If Not Intersect(Target, Range("C1:C10")) Is Nothing Then
       
Kh_Formula = Target.Formula
   
End If
End Sub


تفضل المرفق

ارفق ملف(ملفات)





===================================================


Posted Image

#7 غير متواجد   mohammadey1 Icon

  • اضف كصديق
  • PM this member
  • مجموعة الأعضاء
  • مشاركات 195
  • التحق : 30-August 06

تم الارسال 16 September 2009 - 11:28 PM

العالم العلامة والبحر الفهامة
خبور خبر واخوانه الكرام
بارك الله لكم آمين



0
  • +
  • -

#8 متواجد   mas123 Icon

  • Icon
  • اضف كصديق
  • PM this member
  • مجموعة الخبراء المعتمدين
  • مشاركات 298
  • التحق : 16-June 07
  • Gender:Male

تم الارسال 17 September 2009 - 12:24 AM

أخي وصديقي العزيز خبور خير

الكود الذي تفضلت به يمنع التغيير والحذف فعلا

ولكن جرب أن تغير أو تحذف الخلية النشطة عند فتح الملف قبل أن تتحرك أي حركة ستجد أن المعادلة تم حذفها

أخي halwim

إذا كنت تريد حماية خلية بها معادلة من التغيير أو الحذف

جرب هذه الحيلة

 Private Sub Worksheet_Selectionchange(ByVal Target As Range)
If Target.HasFormula = True Then
MsgBox ("خلية محمية" & vbNewLine & "مع تحيات أخوكم محمد صالح")
ActiveCell.Offset(0, 1).Select
End If
End Sub


وأخبرني

تنفع ولا ....؟



التغير هو القانون الدائم للحياة
ودوام الحال من المحال
فلماذا لا نتغير بإرادتنا إلى ما نريد
قبل أن تغيرنا الحياة مجبرين
إلى ما لا نريد
؟؟؟
!!

موسوعة الأستاذ الشاملة
0
  • +
  • -

#9 متواجد   halwim Icon

  • Icon
  • مجموعة الأعضاء المتميزين
  • مشاركات 465
  • التحق : 22-October 05

Warn Status

Warning level: 0%

تم الارسال 17 September 2009 - 05:22 AM

السلام عليكم ورحمة الله وبركاته ....

أخي الأستاذ خبور خير أشكر مرورك الكريم كما أني لا أزال أتذكر مساعداتك لي قبل انقطاعي ولعلك تتذكر كم ناقشت معك أشياء ومسائل معقدة تسهلت بجهودك جزاك الله الف خير

... وعلى أي حال الكود جدا جميل ولكن فيه عيب صغير وأعتقد أنك سوف تتغلب على هذه المشكلة التي أشار إليها أخي الأستاذ mas123 وهي أن الخلية النشطة عند فتح المستند وقبل أي تحرك يمكن حذفها ... أرجو أن يصل الكود إلى مستوى الطموح وشكرا


أخير الأستاذ mas123 شكرا على مرورك وملاحظاتك الدقيقة والكود الذي أتحفتنا به جدا ممتاز ويؤدي الغرض ، ولكن هل يمكن أن يؤدي نفس الوظيفة بدون خروج رسالة؟

أخيرا أدعو لكم بالتوفيق والسداد وشكرا .
0

#10 متواجد   halwim Icon

  • Icon
  • مجموعة الأعضاء المتميزين
  • مشاركات 465
  • التحق : 22-October 05

Warn Status

Warning level: 0%

تم الارسال 17 September 2009 - 05:29 AM

عندي موضوع صار له فترة لم يرد عليه احد ارجو من الاستاذ خبور ان يتفضل بالمرور على الرابط
http://www.officena....showtopic=29795
رجاء لا أمر وأرجو المعذرة على التطرق لموضوع آخر هنا
0

#11 متواجد   mas123 Icon

  • Icon
  • اضف كصديق
  • PM this member
  • مجموعة الخبراء المعتمدين
  • مشاركات 298
  • التحق : 16-June 07
  • Gender:Male

تم الارسال 17 September 2009 - 09:40 AM

View Posthalwim, on 17 September 2009 - 06:22 AM, said:

السلام عليكم ورحمة الله وبركاته ....

أخي الأستاذ خبور خير أشكر مرورك الكريم كما أني لا أزال أتذكر مساعداتك لي قبل انقطاعي ولعلك تتذكر كم ناقشت معك أشياء ومسائل معقدة تسهلت بجهودك جزاك الله الف خير

... وعلى أي حال الكود جدا جميل ولكن فيه عيب صغير وأعتقد أنك سوف تتغلب على هذه المشكلة التي أشار إليها أخي الأستاذ mas123 وهي أن الخلية النشطة عند فتح المستند وقبل أي تحرك يمكن حذفها ... أرجو أن يصل الكود إلى مستوى الطموح وشكرا


أخير الأستاذ mas123 شكرا على مرورك وملاحظاتك الدقيقة والكود الذي أتحفتنا به جدا ممتاز ويؤدي الغرض ، ولكن هل يمكن أن يؤدي نفس الوظيفة بدون خروج رسالة؟

أخيرا أدعو لكم بالتوفيق والسداد وشكرا .


شكرا لمرورك الكريم أخي الكريم
و لعدم خروج الرسالة احذف هذا السطر من الكود
MsgBox ("خلية محمية" & vbNewLine & "مع تحيات أخوكم محمد صالح")

ملاحظة
الكود الخاص بي به نفس الثغرة إذا أضفته للملف وخلية بها معادلة هي النشطة ثم أغلقت الملف وفتحته ثم قمت بالتعديل سيتم التعديل
وجاري البحث عن حل
والحل المؤقت حاليا هو
نقل الخلية النشطة إلى خلية ليس بها معادلة ثم حفظ الملف وإغلاقه
بحيث عند الفتح لايفتح على خلية بها معادلة فيسهل تغييرها
دمتم طيبين

التغير هو القانون الدائم للحياة
ودوام الحال من المحال
فلماذا لا نتغير بإرادتنا إلى ما نريد
قبل أن تغيرنا الحياة مجبرين
إلى ما لا نريد
؟؟؟
!!

موسوعة الأستاذ الشاملة
0
  • +
  • -

#12 متواجد   halwim Icon

  • Icon
  • مجموعة الأعضاء المتميزين
  • مشاركات 465
  • التحق : 22-October 05

Warn Status

Warning level: 0%

تم الارسال الأمس, 06:42 AM

السلام عليكم ورحمة الله وبركاته ...

أخي الأستاذ mas123 والأستاذ خبور أشكركم على التفاعل في الموضوع وبالنسبة لمشكلة مسح الخلية النشطة بعد فتح الملف مباشرة وقبل أي تحرك أعتقد أنه من خلال الأكواد الموجودة في الملفين بالمرفقات يمكن التغلب على هذه المشكلة .


تدور في رأسي عدة احتمالات عن أسباب هذه المشكلة وأتصور أن المشكلة تحدث بسبب أن الكود لايجد أي حدث يتراجع عنه بينما لو قمنا بأي تحرك من خلية إلى خلية أخرى فهذا العمل يعتبر حدث يمكن للكود التراجع عنه - فإذا كان هذا الأمر فعلا هوسبب المشكلة فأعتقد أننا إقتربنا كثير من حل هذه المشكلة حيث يوجد في المرفقات كود يقوم بالذهاب إلى أول خلية فارغة من العمود المحدد تلقائيا بعد الفتح مباشرة ( الملف في المرفق في المجلد رقم1 ) وقد جربته وهو فعلا رهيب فمثلا في العمود A بينات في المجال A1:A20 وقبل أن أخرج من المستند جعلت الخلية A14 هي الخلية النشطة.

طبعا بعد ذلك حفظت المستند وخرجت - ثم فتحت المستند من جديد ووجدت أن الخلية النشطة أصبحت A21 وهي أول خلية فارغة في العمود.

بودي من الأعضاء واخواني الخبراء استخلاص هذا الكود ودمجه مع كود المهندس خبور خير أوكود الاستاذ mas123 لكي نخرج بكود واحد يؤدي المطلوب يجبر إكسل على الوقوف في خلية فارغة مما يجعل المعادلات تصبح في أمان لوتم الضغط على زر DEL ثم لو حصل تحرك من الخليةالفارغة إلى أي خلية توجد فيها معادلة سوف يتم الإمتناع أي تغير بفضل الأكواد الموضوعه قبل هذه المشاركة حيث أنها قادرة على منع التغيرات الحاصلة بعد التحرك المسبق .

وأتمنى أيضا أن يكون التعديل في الكود القادم شاملا لخصوصية الوقوف عند أول خلية فارغة ( من العمود الذي تم الوقوف فيه قبل الخروج ) فلو تم الخروج من

المستند وكانت الخلية النشطة ضمن أحد الخلاياغيرالفارغة من العمود B فإنه ينبغي عند فتح المستند من جديد يتم التركيز على أول خلية فارغة من نفس العمود.

وهذه الخصوصية موجود في ( الملف المرفق في المجلد رقم2 ) وهي تعمل بالضغط على زر لكن المطلوب أن يعمل الماكرو تلقائيا بعد فتح المستند مباشرة بدون ضغط الزر .


وهذا رابط طرحته قبل سنتين تقريبا وهو مفيد جدا يساعد على ايجاد الحل لمن يود المساعدة :
http://www.officena....showtopic=14180

وهذا رابط آخر أيضا مهم في المقام :
http://www.officena....showtopic=10164

أتمنى لكم التوفيق والسداد
مع تحياتي

ارفق ملف(ملفات)


0

#13 متواجد   mas123 Icon

  • Icon
  • اضف كصديق
  • PM this member
  • مجموعة الخبراء المعتمدين
  • مشاركات 298
  • التحق : 16-June 07
  • Gender:Male

تم الارسال الأمس, 10:29 AM

تفضل يا أخي

المطلوب كما تريد يتم الانتقال تلقائيا إلى الخلية a1 عند فتح الملف

ويتحرك إلى الخلية المجاورة للخلية التي تحتوي على معادلة

ارفق ملف(ملفات)



التغير هو القانون الدائم للحياة
ودوام الحال من المحال
فلماذا لا نتغير بإرادتنا إلى ما نريد
قبل أن تغيرنا الحياة مجبرين
إلى ما لا نريد
؟؟؟
!!

موسوعة الأستاذ الشاملة
0
  • +
  • -

#14 غير متواجد   يوسف عطا Icon

  • اضف كصديق
  • PM this member
  • مجموعة الأعضاء
  • مشاركات 332
  • التحق : 23-June 09

تم الارسال الأمس, 10:38 AM

جازاكم الله خير


متعووووووووب فيه
==============================================
JOE
0
  • +
  • -

#15 متواجد   safwatscc Icon

  • اضف كصديق
  • PM this member
  • مجموعة الأعضاء
  • مشاركات 247
  • التحق : 01-March 08
  • Gender:Male

تم الارسال الأمس, 04:36 PM

View Postmas123, on 18 September 2009 - 12:29 PM, said:

تفضل يا أخي

المطلوب كما تريد يتم الانتقال تلقائيا إلى الخلية a1 عند فتح الملف

ويتحرك إلى الخلية المجاورة للخلية التي تحتوي على معادلة



الاخ محمد صالح


حل جميل جدا 

بارك الله فيك





0
  • +
  • -

#16 متواجد   halwim Icon

  • Icon
  • مجموعة الأعضاء المتميزين
  • مشاركات 465
  • التحق : 22-October 05

Warn Status

Warning level: 0%

تم الارسال الأمس, 04:37 PM

ماشاء الله عمل رائع ....

أخي استاذ mas123 جرب وضع معادلة في الخلية IV1 وهي تقع في أقص يمين الورقة - تخرج رسالة خطأ لأنه لاتوجد خلية مجاورة للإنتقال اليها

لو تضيف للكود خصوصية الانتقال يمين ( أو ) يسار لأن كل خلية حتما لابد لها من يمين أو يسار أو فوق أو تحت .... ارجو اتعديل.


ومارأيك في الأفكار التي طرحتها في مشاركت السابقة ؟

خصوصا: (أتمنى أيضا أن يكون التعديل في الكود القادم شاملا لخصوصية الوقوف عند أول خلية فارغة ( من العمود الذي تم الوقوف فيه قبل الخروج ) فلو تم الخروج من

المستند وكانت الخلية النشطة ضمن أحد الخلاياغيرالفارغة من العمود B فإنه ينبغي عند فتح المستند من جديد يتم التركيز على أول خلية فارغة من نفس العمود.

وهذه الخصوصية موجود في ( الملف المرفق في المجلد رقم2 ) وهي تعمل بالضغط على زر لكن المطلوب أن يعمل الماكرو تلقائيا بعد فتح المستند مباشرة بدون ضغط الزر . )

دمت طيبا
0

#17 متواجد   خبور خير Icon

  • مشرف قسم الإكسيل
  • Icon
  • اضف كصديق
  • PM this member
  • مجموعة المشرفين
  • مشاركات 1,254
  • التحق : 05-December 05

تم الارسال الأمس, 09:43 PM

السلام عليكم

ملاحظة :
1- الكود لا يغير اي شي في الخلايا المحددة وليس الصيغ فقط.
2- اذا قمت بتحديد اكثر من خلية ومن ضمنها الخلايا المحددة في الكود
لا يتم المسح بتاتا.
=====================

Quote

وأتمنى أيضا أن يكون التعديل في الكود القادم شاملا لخصوصية الوقوف عند أول خلية فارغة ( من العمود الذي تم الوقوف فيه قبل الخروج ) فلو تم الخروج من

المستند وكانت الخلية النشطة ضمن أحد الخلاياغيرالفارغة من العمود B فإنه ينبغي عند فتح المستند من جديد يتم التركيز على أول خلية فارغة من نفس العمود.


اضفنا هذا الكود في حدث الدخول الى ملف الاكسل
Private Sub Workbook_Open()
With ورقة1
   
If ActiveSheet.Name = .Name Then
       
.KH_sheet_Activate
   
End If
End With
End Sub


وتم اضافة بسيطة في اكواد حدث ورقة1

Dim Kh_Formula
Private Sub Worksheet_Activate()
KH_sheet_Activate
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
   
If Not Intersect(Target, Range("C1:C10")) Is Nothing Then
       
On Error Resume Next
       
Application.EnableEvents = False
       
Target.Formula = Kh_Formula
       
Application.EnableEvents = True
       
On Error GoTo 0
   
End If
End Sub
Private Sub Worksheet_Selectionchange(ByVal Target As Range)
   
If Not Intersect(Target, Range("C1:C10")) Is Nothing Then
       
Kh_Formula = Target.Formula
   
End If
End Sub
Sub KH_sheet_Activate()
Dim C As Integer
C
= ActiveCell.Column
Cells(Rows.Count, C).End(xlUp).Offset(1, 0).Select
End Sub


تفضل المرفق

ارفق ملف(ملفات)


تم تعديل هذه المشاركة بواسطةخبور خير: اليوم, 08:02 PM




===================================================


Posted Image

#18 متواجد   mhrrd Icon

  • اضف كصديق
  • PM this member
  • مجموعة الأعضاء
  • مشاركات 51
  • التحق : 11-July 06

تم الارسال الأمس, 10:14 PM

مشكوور
يا استاااذ خبور
مش عارف اعمل توقيع صورة
مش عارف الصق صور
حتى تغيير الاسم يبدو انه لناس ناس انا عملت كل المحاولات ولم تجدي
اصدار المنتدى ده بكل اسف متعب
المنتديات الحديثة في كل مكان وسهله وصثدوق الكتابه فيها متروس خير نختار منه كلمات الشكر والبسمله وحاجات حلوة وصور صغيرة معبرة ...
0
  • +
  • -

#19 متواجد   safwatscc Icon

  • اضف كصديق
  • PM this member
  • مجموعة الأعضاء
  • مشاركات 247
  • التحق : 01-March 08
  • Gender:Male

تم الارسال اليوم, 01:52 AM

الاخوة الافاضل

عمل رائع

لكن هل ممكن تحديد اكثر من نطاق فى نفس الورقة

وكذلك هل ممكن فى اكثر من ورقة عمل






تم تعديل هذه المشاركة بواسطةsafwatscc: اليوم, 02:07 AM

0
  • +
  • -

#20 متواجد   halwim Icon

  • Icon
  • مجموعة الأعضاء المتميزين
  • مشاركات 465
  • التحق : 22-October 05

Warn Status

Warning level: 0%

تم الارسال اليوم, 05:08 AM

أستاذ خبور ماشاء الله .... هكذا ولا أروع... الكود يعمل بامتياز .... سلمت يداك

بس ياليت تشرح لنا طريقة تغيير المجال كما لو أردنا حماية النطاق A1:D10 فكيف يتم ذلك ؟ وكذلك لو أردنا حماية النطاقين A1:D10 + F1:K10 أرجو التفضل بالشرح أو إرفاق ملف بالمطلوب ؟

كما لا يفوتني أن أشكر بقية الأعضاء راجيا تلبية استفساراتهم .

دمت طيبا
0

Currently اخفاء المشاركات النقاط . Change threshold?

شارك هذا الموضوع

  • (2 صفحات)
  • +
  • 1
  • 2


إعلانات جوجل



رد سريع

  

2 عضو(اعضاء) يشاهدون هذا الموضوع
2 الاعضاء, 0 الزوار, 0 مجهولين

  1. halwim,
  2. خبور خير

Alexa Certified Site Stats for www.officena.net